package com.ruoyi.settled.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 结算协议对象 settlement_agreement
 * 
 * @author huangchen
 * @date 2025-01-18
 */
public class SettlementAgreement extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 协议编码 */
    @Excel(name = "协议编码")
    private String agreementCode;

    /** 协议类型 */
    @Excel(name = "协议类型")
    private String agreementType;

    /** 协议状态 */
    @Excel(name = "协议状态")
    private String agreementStatus;

    /** 合作方编码 */
    @Excel(name = "合作方编码")
    private String partnerCode;

    /** 协议的详细内容 */
    @Excel(name = "协议的详细内容")
    private String agreementContent;

    /** 协议的创建日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "协议的创建日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date creationDate;

    /** 协议的最后修改日期 */
    private Date lastModifiedDate;

    /** 最后修改人 */
    private String lastModifiedBy;

    /** 提成率 */
    @Excel(name = "提成率")
    private BigDecimal commissionRate;

    /** 分红率 */
    @Excel(name = "分红率")
    private BigDecimal bonusRate;

    /** 折扣率 */
    @Excel(name = "折扣率")
    private BigDecimal discountRate;

    /** 协议规则信息 */
    private List<AgreementRule> agreementRuleList;

    public void setAgreementCode(String agreementCode) 
    {
        this.agreementCode = agreementCode;
    }

    public String getAgreementCode() 
    {
        return agreementCode;
    }
    public void setAgreementType(String agreementType) 
    {
        this.agreementType = agreementType;
    }

    public String getAgreementType() 
    {
        return agreementType;
    }
    public void setAgreementStatus(String agreementStatus) 
    {
        this.agreementStatus = agreementStatus;
    }

    public String getAgreementStatus() 
    {
        return agreementStatus;
    }
    public void setPartnerCode(String partnerCode) 
    {
        this.partnerCode = partnerCode;
    }

    public String getPartnerCode() 
    {
        return partnerCode;
    }
    public void setAgreementContent(String agreementContent) 
    {
        this.agreementContent = agreementContent;
    }

    public String getAgreementContent() 
    {
        return agreementContent;
    }
    public void setCreationDate(Date creationDate) 
    {
        this.creationDate = creationDate;
    }

    public Date getCreationDate() 
    {
        return creationDate;
    }
    public void setLastModifiedDate(Date lastModifiedDate) 
    {
        this.lastModifiedDate = lastModifiedDate;
    }

    public Date getLastModifiedDate() 
    {
        return lastModifiedDate;
    }
    public void setLastModifiedBy(String lastModifiedBy) 
    {
        this.lastModifiedBy = lastModifiedBy;
    }

    public String getLastModifiedBy() 
    {
        return lastModifiedBy;
    }
    public void setCommissionRate(BigDecimal commissionRate) 
    {
        this.commissionRate = commissionRate;
    }

    public BigDecimal getCommissionRate() 
    {
        return commissionRate;
    }
    public void setBonusRate(BigDecimal bonusRate) 
    {
        this.bonusRate = bonusRate;
    }

    public BigDecimal getBonusRate() 
    {
        return bonusRate;
    }
    public void setDiscountRate(BigDecimal discountRate) 
    {
        this.discountRate = discountRate;
    }

    public BigDecimal getDiscountRate() 
    {
        return discountRate;
    }

    public List<AgreementRule> getAgreementRuleList()
    {
        return agreementRuleList;
    }

    public void setAgreementRuleList(List<AgreementRule> agreementRuleList)
    {
        this.agreementRuleList = agreementRuleList;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("agreementCode", getAgreementCode())
            .append("agreementType", getAgreementType())
            .append("agreementStatus", getAgreementStatus())
            .append("partnerCode", getPartnerCode())
            .append("agreementContent", getAgreementContent())
            .append("creationDate", getCreationDate())
            .append("lastModifiedDate", getLastModifiedDate())
            .append("lastModifiedBy", getLastModifiedBy())
            .append("remark", getRemark())
            .append("commissionRate", getCommissionRate())
            .append("bonusRate", getBonusRate())
            .append("discountRate", getDiscountRate())
            .append("agreementRuleList", getAgreementRuleList())
            .toString();
    }
}
